package com.ucode.springboot.starter.web.validator.annotation;
import java.lang.annotation.Documented;
import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;
import javax.validation.Constraint;
import javax.validation.Payload;
import org.hibernate.validator.constraints.Range;

/**
 * 校验数组成员是否在指定范围内,类似用户状态,性别
 * 目前只支持基本类型
 * @author: liliang
 * @date: 2019年12月19日 下午3:10:35
 */
@Target( { ElementType.METHOD, ElementType.FIELD, ElementType.ANNOTATION_TYPE })
@Retention(RetentionPolicy.RUNTIME)
@Constraint(validatedBy = CheckMemberValidator.class)//此处指定了注解的校验实现类
@Documented
@Range
public @interface CheckMember {
    /**
     * 默认错误消息
     * @author liliang
     * @date 2019年12月19日
     * @return
     */
    String message() default "flag is not found";

    /**
     * 分组
     * @author liliang
     * @date 2019年12月19日
     * @return
     */
    Class<?>[] groups() default {};

    /**
     * 负载
     * @author liliang
     * @date 2019年12月19日
     * @return
     */
    Class<? extends Payload>[] payload() default {};

    /**
     * 数组
     * @author liliang
     * @date 2019年12月19日
     * @return
     */
    String[] value() default {};
}